//size_t strlen(const char* str)-求字符串长度('\0'之前的字符个数)
//返回值类型为size_t(unsigned int)
//
#include <stdio.h>
#include <string.h>
#include <assert.h>

size_t my_strlen1(const char* str)//三种实现方法，计数器，指针-指针，递归
{
    assert(str);
    size_t count = 0;
    while(*str != '\0'){count++;str++;}
    return count;
}

size_t my_strlen2(const char* str)
{
    assert(str);
    const char* strx = str;
    while(*strx != '\0'){strx++;}
    return strx - str;
}

size_t my_strlen3(const char* str)
{
    assert(str);
    if(*str == '\0')
    return 0;
    else
    return 1 + my_strlen3(str+1);
}

void size_t_example()
{
    if(strlen("abc") - strlen("abcdef") > 0)//相减一定是正数
    {
        printf(">\n");
    }
    else
    {
        printf("<=\n");
    }
}

int main()
{
    char arr[] = "abcdef";
    int len = strlen(arr);
    printf("%d\n", len);
    size_t_example();
    printf("%u\n", my_strlen1(arr));
    return 0;
}